1. Field of the Invention
Embodiments of the invention relate generally to the field of computing systems, and more particularly, to a firmware enabled trap-based Redundant Array of Independent Disks (RAID) implementation.
2. Description of Related Art
A RAID system is generally defined as a disk system that provides increased performance and/or fault tolerance for a computer system by utilizing two or more disk drives in combination. Typically, a RAID system comprises a RAID controller and two or more disk drives. RAID functionality, in the past, has typically been built into a hardware-based RAID controller. However, today, RAID systems can now be implemented in computer systems via software.
Utilizing a RAID system, performance may be improved by disk striping, which interweaves bytes or groups of bytes across multiple disk drives, so that more than one disk drive is reading and writing simultaneously. Fault tolerance may be achieved by mirroring or parity.
Various levels of RAID systems are well known. For example, RAID level 0 refers to disk striping only, which interweaves data across multiple disks for better performance. However, RAID level 0 does not provide safeguards against failure. RAID level 1 utilizes disk mirroring which provides 100 percent duplication of data and offers very high reliability, but doubles storage cost. There are also a number of other different RAID levels that provide different types of fault tolerance levels (e.g. RAID levels 2, 3, 4, 5, 6, 10, etc.), as are known in the art.
In the past, RAID systems implemented via software in computers suffered from low efficiency and sub-par performance. However, with increasingly faster computers, the implementation of RAID systems has become more and more plausible.
Today, operating systems (OSs), such as Windows 2000, provide software-based RAID capability without the need for a separate hardware-based RAID controller. These software-based RAID mechanisms are supposed to allow a RAID system of multiple disk drives to be set-up in typical RAID fashion, in which, multiple disk drives are obscured to the OS, and a persistent description of only one logical RAID device is instead presented to the OS, such that the OS believes it is only dealing with one disk drive for input/output I/O transactions (e.g. read/write operations).
Unfortunately, computer systems are often unable to implement software-based RAID systems because of compatibility issues with respect to drivers of the operating system, different versions of OSs, and different OSs. Computer system users are increasingly finding that attempting to operate software-based RAIDs due to various compatibility issues is particularly burdensome and, often, computer system users quite simply cannot set up their personal computer system to run a software-based RAID.